/*
 * ModulusExp.h
 *
 *  Created on: Sep 22, 2012
 *      Author: calle
 */

#ifndef MODULUSEXP_H_
#define MODULUSEXP_H_

#include <Interfaces/IExp.h>
#include <AbsSyn/AbsSyn.h>
#include <Generator/GenExp.h>


class IExpVisitor;

class ModulusExp : public IExp
{
public:


	ModulusExp(AbsSyn::IExpPtr lhs, AbsSyn::IExpPtr rhs);
	virtual ~ModulusExp();


	virtual void accept(IExpVisitor *v);

	virtual IExp* clone() const;
	virtual std::string toString()const;

	static AbsSyn::IExpPtr generateModExp(GenExp& genObj);

private:
	AbsSyn::IExpPtr m_lhs;
	AbsSyn::IExpPtr m_rhs;
};

#endif /* MODULUSEXP_H_ */
